Modern network environments often include several different computing devices at an end user's location connected to an external network over a single communication path. For example, a user's home or office may have multiple computers, televisions and set-top boxes, mobile devices, gaming consoles, and other communication devices connected to an interface such as a gateway and/or modem, so that the devices compete for network bandwidth. Users typically purchase a finite amount of upstream and downstream bandwidth from a network provider, and these amounts may be enforced by the user's gateway or other network component. When the combined network usage of the user's devices exceeds the available bandwidth, the user may experience delays and performance degradation on one or more of the devices. However, the user may have no way of determining which network devices are taking up significant amounts of bandwidth at that particular time. Moreover, the user might not even be sure that the performance problems are related to the user's bandwidth limitations. For example, the user may suspect that the performance problems of the devices are caused by congestion further upstream on the network (e.g., at a shared access router, central office, etc.), or by problems within the devices themselves (e.g., hardware malfunctions or software errors).
Thus, although a user may attempt to remedy performance problems, neither the user nor the provider may know the precise cause or location of the performance problems. One attempted solution is for the user to purchase additional bandwidth from the network provider. However, this solution is entirely speculative and will not correct the user's problem if the cause of the problem is within the devices themselves, or if the problem is further upstream on the network. Thus, the user will be reluctant to make the additional purchase without greater assurance that the additional bandwidth will correct the problems with the user's devices. Additionally, if the performance problems are caused by excessive bandwidth usage of one of the user's devices, then simply purchasing more bandwidth will not allow the user to identify the offending device or reconfigure the device to correct the problem.
Accordingly, there remains a need for network monitoring and network congestion analysis techniques that support additional abilities to coordinate growing numbers of user devices and applications that compete for finite network bandwidth.